package com.itheima.mobilesafe69.view;

import com.itheima.mobilesafe69.R;

import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RelativeLayout;
import android.widget.TextView;

//每一个xml中的结点,都需要转换成java中的对象才可以去运行
//转换成一个对象,调用其构造方法,在调用构造方法的时候,去做xml--->view操作

/**
 * @author qbc
 * 将抽取出来的布局转换成一个view对象,用作展示 
 */
public class SettingItemView extends RelativeLayout {
	private static final String tag = "SettingItemView";
	private TextView tv_title;
	private TextView tv_des;
	private CheckBox cb_box;
	private static final String NAMESPACE = "http://schemas.android.com/apk/res/com.itheima.mobilesafe69";
	private String mDesTitle;
	private String mDesOff;
	private String mDesOn;
	public SettingItemView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		initAttrs(attrs);
		initUI(context);
	}
	public SettingItemView(Context context, AttributeSet attrs) {
		super(context, attrs);
		initAttrs(attrs);
		initUI(context);
	}
	public SettingItemView(Context context) {
		super(context);
		initUI(context);
	}
	//单独抽取出来的 xml--->view
	private void initUI(Context context) {
		View.inflate(context, R.layout.setting_item_view, this);
		
		tv_title = (TextView) findViewById(R.id.tv_title);
		tv_des = (TextView) findViewById(R.id.tv_des);
		
		cb_box = (CheckBox) findViewById(R.id.cb_box);
		
		tv_title.setText(mDesTitle);
	}
	
	//checkbox是否选中的状态,就决定了当前条目是否开启版本更新检测
	//checbbox选中状态,和版本更新状态绑定

	/**
	 * 当前条目的选中状态,是否开启更新的选中状态
	 */
	public boolean isCheck(){
		//是否要去更新,由checkbox选中状态决定	true选中 	false未选中
		return cb_box.isChecked();
	}
	
	/**
	 * @param isCheck	传递一个选中未选中的状态变量(true 选中	false未选中)
	 */
	public void setCheck(boolean isCheck){
		cb_box.setChecked(isCheck);
		if(isCheck){
			tv_des.setText(mDesOn);
		}else{
			tv_des.setText(mDesOff);
		}
	}

	/**
	 * @param attrs	包含了属性名称和属性值的set集合
	 */
	private void initAttrs(AttributeSet attrs) {
		//打印属性总个数
		/*Log.i(tag, "attrs.getAttributeCount() = "+attrs.getAttributeCount());
		for(int i=0;i<attrs.getAttributeCount();i++){
			//获取所有的属性名称
			Log.i(tag, "属性名称 = "+attrs.getAttributeName(i));
			Log.i(tag, "属性值 = "+attrs.getAttributeValue(i));
		}*/
		
		mDesTitle = attrs.getAttributeValue(NAMESPACE,"desTitle");
		mDesOff = attrs.getAttributeValue(NAMESPACE,"desOff");
		mDesOn = attrs.getAttributeValue(NAMESPACE,"desOn");
		
		Log.i(tag, mDesTitle);
		Log.i(tag, mDesOff);
		Log.i(tag, mDesOn);
	}
}
